package com.mycompany.tpfinal.abm;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.swing.JOptionPane;

class Definebase {

    public String user;
    public String pass;
    public String url;
    public Connection cn =null;

    
    public void Define() throws IOException, SQLException {
    
        Properties propiedadesbase = new Properties();
        String basedatos =("/configuracion.properties");
        propiedadesbase.load(Conexion.class.getResourceAsStream(basedatos));
        String basededatos = propiedadesbase.getProperty("baseUtilizada");
        
        if ("mysql".equals(basededatos)){
            
            url = propiedadesbase.getProperty("urlmysql");
            user =  propiedadesbase.getProperty("user");
            pass = propiedadesbase.getProperty("pass");
            try{
                Class.forName("com.mysql.jdbc.Driver");
                cn = DriverManager.getConnection(url,user,pass);
            }catch(Exception ex){
                JOptionPane.showMessageDialog(null, "Error" + ex.getMessage());
            }
            
            Statement st = null;
            String sql = null;
            //Crea la tabla Peliculas con 7 campos ID, Nombre, Descripción, Genero, Director, Actores_Principales, Duración
            st  = cn.createStatement();  
            sql = "CREATE TABLE IF NOT EXISTS Peliculas (ID INTEGER AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(100), DESCRIPTION VARCHAR(500), GENRE_ID VARCHAR(30), DIRECTOR VARCHAR(30), MAIN_ACTORS VARCHAR(100), DURATION INTEGER)";  
            try{
                st.executeUpdate(sql);
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Error: Fallo al crear la tabla:", "Error creacion tablas", JOptionPane.ERROR_MESSAGE);
                e.printStackTrace();
            }
        }
        if ("hsql".equals(basededatos)){
            url = propiedadesbase.getProperty("urlhsql");
            
            try{
                Class.forName("org.hsqldb.jdbcDriver");
                cn = DriverManager.getConnection(url);
            }catch(Exception ex){
                JOptionPane.showMessageDialog(null, "Error" + ex.getMessage());
            }

            Statement st = null;
            String sql = null;
            //Crea la tabla Peliculas con 7 campos ID, Nombre, Descripción, Genero, Director, Actores_Principales, Duración
            st  = cn.createStatement();  
            sql = "CREATE TABLE Peliculas (ID INTEGER IDENTITY, NAME VARCHAR(100), DESCRIPTION VARCHAR(500), GENRE_ID VARCHAR(30), DIRECTOR VARCHAR(30), MAIN_ACTORS VARCHAR(100), DURATION INTEGER)";  
            try{
                st.executeUpdate(sql);
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Error: Fallo al crear la tabla:", "Error creacion tablas", JOptionPane.ERROR_MESSAGE);
                e.printStackTrace();
            }
        }
    }




}
